課程資訊
課程名稱
計算機程式
Computer Programming 
開課學期
109-1 
授課對象
數學系  
授課教師
林宗男 
課號
EE1004 
課程識別碼
901 10210 
班次
03 
學分
3.0 
全/半年
半年 
必/選修
必修 
上課時間
星期二6(13:20~14:10)星期三8,9(15:30~17:20) 
上課地點
博理113博理113 
備註
本系優先。數學系10名。
限本系所學生(含輔系、雙修生)
總人數上限:75人 
Ceiba 課程網頁
http://ceiba.ntu.edu.tw/1091_Programming 
課程簡介影片
 
核心能力關聯
核心能力與課程規劃關聯圖
課程大綱
為確保您我的權利,請尊重智慧財產權及不得非法影印
課程概述

Python是一門十分簡潔、高效率的程式語言;且其學習曲線平緩,網路上的學習資源非常多,很適合程式新手入門。雖然適合初學者,不過python的開源套件也非常多,可以深入各領域的研究。例如最近發展中的人工智慧所使用的深度學習方法,Python所擁用的套件在所有的程式語言中幾乎是最完善的。本課程希望以深入淺出的方式,帶領學生從python入門,最後能夠利用程式碼來解決各領域的專業問題。

本課程以物件導向(Object-oriented programming)概念為主軸介紹程式語言。 本課程會以 Python 語言為主要介紹 OOP 的語言。 Python 語言強調其 "code readability". 對於同樣的問題 ,用 Python 來解決的程式會比用 c/c++ 來的簡單。 根據最新統記指出,Python 是美國頂尖大學裡最常用的入門程式語言。

本課程以 Python3 程式語言介紹 OOP 的概念並比較 Python 與 C 不同之處,因此修完此課程學生除了可以學到 Python 亦可以學到基本的 C 概念。由於 Python 是一個高階語言,也會帶領學生體驗開發高階的應用,如 AI 電腦視覺,線上聊天室,網路爬蟲等等。

除了正課上課時間,本課程搭配於每個星期四晚上的計算機程式設計實驗。  

課程目標
能夠熟練寫Python程式碼,並以此來解決問題。 
課程要求
本課程完全不需要程式語言的先備能力。但修課同學必須注意,在學期開始之前必須要先安裝好程式環境,並至網路資源(Codecademy)學習Python。 
預期每週課後學習時數
 
Office Hours
另約時間 
指定閱讀
待補 
參考書目
教科書 :
[1] How to Think Like a Computer Scientist
http://www.greenteapress.com/thinkpython/thinkCSpy.pdf
[2] Python Tutorial
https://docs.python.org/2/tutorial/

[3] Problem Solving with Algorithms and Data Structures
http://interactivepython.org/runestone/static/pythonds/index.html



[3] Problem Solving with Algorithms and Data Structures
http://interactivepython.org/runestone/static/pythonds/index.html

網路學習資源:
[1]Codecademy
https://www.codecademy.com/catalog/language/python
 
評量方式
(僅供參考)
 
No.
項目
百分比
說明
1. 
Midterm Exam 
30% 
 
2. 
Homework + Lab  
40% 
30% from homeworks 10% from labs 
3. 
Final Exam 
15% 
 
4. 
Final Project  
15% 
 
 
課程進度
週次
日期
單元主題
第1週
09/15  week01_intro_environment-setup 
第2週
09/22  week02_python-basic-01
ref : 2-1~2-9, 7-1~7-7, 8-3~8-7 
第3週
09/29  week03_python-basic-02
ref : 6-1~6-7, 9-1~9-9, 10-1~10-20 
第4週
10/06  week04_data_structure-hw1
ref :10-21~10-27, 12-1~12-4 
第5週
10/13  week05_basic-io
ref : 11-1~11-7 
第6週
10/21  week06_basic-algorithm 
第7週
10/27  week07_function-and-recursive-hw2 
第8週
11/03  week08_function-decorator 
第9週
11/10  week09_package-module 
第10週
11/17  week10_midterm_no-class 
第11週
11/24  week11_object-oriented-programming-01 
第12週
12/01  week12_object-oriented-programming-02 
第13週
12/08  week13_computer-vision-hw3 
第14週
12/15  week14_network-programming-01 
第15週
12/22  week15_network-programming-02 
第16週
12/29  week16_gui-programming 
第17週
2021/01/08  week17_project_no-class 
第18週
2021/01/12  week18_project_no-class